import fieldTypes from '../../utils/field-types-desc';

const fieldType = fieldTypes.find(({ code }) => code === 'switch') || {};

export default {
    attributes: [
        {
            params: 'v-model',
            des: '绑定值',
            type: fieldType.valueType,
            values: '-',
            defaultVal: '-',
        },
        {
            params: 'props',
            des: '表单元素配置; 详细配置请查看下方【props 配置项】',
            type: 'Object',
            values: '-',
            defaultVal: '-',
            details: [
                {
                    title: '配置项【props】',
                    configList: [
                        {
                            params: 'type',
                            des: `表单项控件的类型(此控件的 type 固定为 "${fieldType.code}")`,
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'value',
                            des: '表单项控件的默认值，若绑定值为空，将获取该值作为初始值',
                            type: fieldType.valueType,
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'size',
                            des: '尺寸大小',
                            type: 'String',
                            values: '"large" | "default" | "small"',
                            defaultVal: '"default"',
                        },
                        {
                            params: 'loading',
                            des: '是否显示加载中',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'disabled',
                            des: '是否禁用',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'activeValue',
                            des: 'switch 状态为 on 时的值',
                            type: fieldType.valueType,
                            values: '-',
                            defaultVal: 'true',
                        },
                        {
                            params: 'inactiveValue',
                            des: 'switch 状态为 off 时的值',
                            type: fieldType.valueType,
                            values: '-',
                            defaultVal: 'false',
                        },
                        {
                            params: 'activeText',
                            des: 'switch 的状态为 on 时的文字描述',
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'inactiveText',
                            des: 'switch 的状态为 off 时的文字描述',
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'activeIcon',
                            des: 'switch 状态为 on 时所显示图标，设置此项会忽略 active-text',
                            type: 'String | Component',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'inactiveIcon',
                            des: 'switch 状态为 off 时所显示图标，设置此项会忽略 inactive-text',
                            type: 'String | Component',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'activeActionIcon',
                            des: 'on 状态下显示的图标组件',
                            type: 'String | Component',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'inactiveActionIcon',
                            des: 'off 状态下显示的图标组件',
                            type: 'String | Component',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'inlinePrompt',
                            des: '无论图标或文本是否显示在点内，只会呈现文本的第一个字符',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'beforeChange',
                            des: 'switch 状态改变前的钩子， 返回 false 或者返回 Promise 且被 reject 则停止切换',
                            type: 'Boolean | Function',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'validateEvent',
                            des: '输入时是否触发表单的校验',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                    ],
                },
            ],
        },
    ],
    events: [
        {
            name: 'change',
            des: '输入框失焦后值内容修改触发的事件',
            params: '({ value }, props)',
        },
    ],
    slots: [],
    refs: [],
};
